﻿using System;
using System.ComponentModel;

namespace Mbs
{
    [Serializable]
    public class EventArgs<TFirst> : EventArgs
    {
    	public TFirst First { get;private set;}
        public EventArgs(TFirst first)
        {
            First = first;
        }
    }

    [Serializable]
    public class EventArgs<TFirst, TSecond> : EventArgs<TFirst>
    {
    	public TSecond Second { get; private set;}
        public EventArgs(TFirst first, TSecond second)
            : base(first)
        {
            Second = second;
        }
    }

    [Serializable]
    public class CancelEventArgs<TFirst> : CancelEventArgs
    {
    	public TFirst First { get;private set; }
        public CancelEventArgs(TFirst first)
        {
            First = first;
        }
    }

    [Serializable]
    public class CancelEventArgs<TFirst, TSecond> : CancelEventArgs<TFirst>
    {
    	public TSecond Second { get; private set; }
        public CancelEventArgs(TFirst first, TSecond second)
            : base(first)
        {
            Second = second;
        }
    }
}
